class person
{
private:
    int age;

public:
    person(int a)
    {
        this->age = a;
    }
    inline bool operator==(const person &ps) const;
};

// preson类空间运算符重载
// inline使其内联
// 函数后面加const，表示这些函数是"只读"函数加了const的成员函数可以被非const对象和const对象调用
// 但不加const的成员函数只能被非const对象调用
inline bool person::operator==(const person &ps) const
{
    if (this->age == ps.age)
        return true;
    return false;
}

// 调用方式
#include <iostream>
using namespace std;
int main()
{
    person p1(10); // 这样实例化，默认直接将参数传进类的同名成员函数里面去
    person p2(10);
    if (p1 == p2)
    {
        cout << "the age is equal !" << endl;
    }
    //因为operator == 是class person的一个成员函数，所以对象p1,p2都可以调用该函数
    //上面的if语句中，相当于p1调用函数 ==，把p2作为该函数的一个参数传递给该函数，从而实现了两个对象的比较。
    return 0;
}
